package org.ehe.system.service;

import org.ehe.common.mybatis.core.page.PageQuery;
import org.ehe.common.mybatis.core.page.TableDataInfo;
import org.ehe.system.domain.bo.HrEmployeeFamilyBo;
import org.ehe.system.domain.vo.HrEmployeeFamilyVo;

import java.util.Collection;
import java.util.List;

/**
 * 员工家庭成员Service接口
 *
 * @author zhangnn
 */
public interface IHrEmployeeFamilyService {

    /**
     * 查询员工家庭成员
     *
     * @param familyId 家庭成员主键
     * @return 员工家庭成员
     */
    HrEmployeeFamilyVo queryById(Long familyId);

    /**
     * 根据工号查询员工家庭成员列表
     *
     * @param employeeNo 工号
     * @return 员工家庭成员集合
     */
    List<HrEmployeeFamilyVo> queryListByEmployeeNo(String employeeNo);

    /**
     * 查询员工家庭成员列表
     *
     * @param bo 员工家庭成员
     * @return 员工家庭成员集合
     */
    TableDataInfo<HrEmployeeFamilyVo> queryPageList(HrEmployeeFamilyBo bo, PageQuery pageQuery);

    /**
     * 查询员工家庭成员列表
     *
     * @param bo 员工家庭成员
     * @return 员工家庭成员集合
     */
    List<HrEmployeeFamilyVo> queryList(HrEmployeeFamilyBo bo);

    /**
     * 新增员工家庭成员
     *
     * @param bo 员工家庭成员
     * @return 结果
     */
    Boolean insertByBo(HrEmployeeFamilyBo bo);

    /**
     * 修改员工家庭成员
     *
     * @param bo 员工家庭成员
     * @return 结果
     */
    Boolean updateByBo(HrEmployeeFamilyBo bo);

    /**
     * 批量删除员工家庭成员
     *
     * @param familyIds 需要删除的家庭成员主键集合
     * @return 结果
     */
    Boolean deleteByIds(Collection<Long> familyIds);

}
